package com.jlcon.nas.biz.aria;

import java.util.List;

import com.googlecode.jsonrpc4j.JsonRpcMethod;
import com.jlcon.nas.biz.aria.dto.Aria2ActiveTask;

/**
 * Aria2 RPC API 接口<br>
 * 文档：https://aria2.document.top/zh/aria2c.html#id45
 */
public interface Aria2Service {

	/**
     * 调用Aria2的addUri方法
     * @param uris 要下载的URI列表
     * @return 返回Aria2的响应
     */
    @JsonRpcMethod("aria2.addUri")
    String addUri(String token,String...uris);
    @JsonRpcMethod("aria2.forceRemove")
    String forceRemove(String token,String gid);
    @JsonRpcMethod("aria2.tellStatus")
    Aria2ActiveTask tellStatus(String token,String gid);
    @JsonRpcMethod("aria2.getServers")
    Object getServers(String token,String gid);
    @JsonRpcMethod("aria2.tellWaiting")
    List<Aria2ActiveTask> tellWaiting(String token,Integer offset,Integer num);
    @JsonRpcMethod("aria2.tellStopped")
    List<Aria2ActiveTask> tellStopped(String token,Integer offset,Integer num);
    @JsonRpcMethod("aria2.tellActive")
    List<Aria2ActiveTask> tellActive(String token,String...keys);
    @JsonRpcMethod("aria2.getVersion")
    Object getVersion(String token);
}
